﻿@{
    ViewBag.Title = "Pagos del Evento";
}

<br />
@Html.Partial("_PagosPartial")
<div id="MovimientoTable"></div>

@section Scripts {
    <script type="text/javascript" src="~/Scripts/jfunciones-participante.js"></script>
    <script type="text/javascript" src="~/Scripts/jfunciones-pago.js"></script>
    <script type="text/javascript">
        var idMotivo = '@SWGeneracionE.Constantes.MOTIVODEPOSITO_EVENTO';
        $(document).ready(function () {
            $('#MovimientoTable').jtable({
                title: '@ViewBag.Title',
                paging: true,
                pageSize: 25,
                sorting: true,
                multiSorting: true,
                defaultSorting: 'idMovimiento ASC',
                //openChildAsAccordion: true,
                actions: {
                    listAction: '@Url.Action("MovimientoList", "Pago")',
                    deleteAction: '@Url.Action("DeleteMovimiento", "Pago")',
                    updateAction: '@Url.Action("UpdateMovimiento", "Pago")',
                    createAction: '@Url.Action("CreateMovimiento", "Pago")'
                },
                toolbar: {
                    items: [{
                        tooltip: 'Exportar a Excel',
                        icon: GetAppURL() + '/Content/images/excel.png',
                        text: 'Exportar a Excel',
                        click: function () {
                            var sUrl = '@Url.Action("MovimientoExportExcel", "Pago")?'
                                       + $('.filtering form[name=pagos]').serialize();

                            window.open(sUrl, 'Exportar a Excel');
                        }
                    }]
                },
                fields: {
                    idMovimiento: {
                        key: true,
                        create: false,
                        edit: false,
                        list: false
                    },
                    idMotivo: {
                        type: 'hidden',
                        defaultValue: idMotivo
                    },
                    autorizar: {
                        title: '',
                        width: '2%',
                        sorting: false,
                        edit: false,
                        create: false,
                        display: function (data) {
                            var $img = $('<img src="' + GetAppURL() + '/Content/images/check.png" title="Autorizar pago" />');
                            $img.click(function () {
                                $('#hdMovimientoConf').val(data.record.idMovimiento);
                                $('#spTipoConf').text('autorizar');
                                $('#spBoletaConf').text(data.record.noDocumento);
                                $('#ui-dialog-confirmacion').dialog('open');
                            });
                            if ((!data.record.AutorizarRechazar) || (data.record.estado != '@SWGeneracionE.Constantes.ESTADOMOVIMIENTO_INGRESADO')) {
                                $img.hide();
                            }
                            return $img;
                        }
                    },
                    rechazar: {
                        title: '',
                        width: '2%',
                        sorting: false,
                        edit: false,
                        create: false,
                        display: function (data) {
                            var $img = $('<img src="' + GetAppURL() + '/Content/images/reject.png" title="Rechazar pago" />');
                            $img.click(function () {
                                $('#hdMovimientoConf').val(data.record.idMovimiento);
                                $('#spTipoConf').text('rechazar');
                                $('#spBoletaConf').text(data.record.noDocumento);
                                $('#ui-dialog-confirmacion').dialog('open');
                            });
                            if ((!data.record.AutorizarRechazar) || (data.record.estado != '@SWGeneracionE.Constantes.ESTADOMOVIMIENTO_INGRESADO') ) {
                                $img.hide();
                            }
                            return $img;
                        }
                    },
                    pagos: {
                        title: '',
                        width: '2%',
                        sorting: false,
                        edit: false,
                        create: false,
                        display: function (movimientoData) {
                            var $img = $('<img src="' + GetAppURL() + '/Content/images/distribuir.png" title="Distribuir pagos" />');
                            //Abrir child table al hacer click
                            $img.click(function () {
                                $('#MovimientoTable').jtable('openChildTable',
                                    $img.closest('tr'),
                                    {
                                        title: movimientoData.record.noDocumento + ' - Distribución de Pagos',
                                        actions: {
                                            listAction: '@Url.Action("PagoList", "Pago")?idMovimiento=' + movimientoData.record.idMovimiento,
                                            deleteAction: '@Url.Action("DeletePago", "Pago")',
                                            updateAction: '@Url.Action("UpdatePago", "Pago")',
                                            createAction: '@Url.Action("CreatePago", "Pago")'
                                        },
                                        fields: {
                                            idMovimiento: {
                                                type: 'hidden',
                                                defaultValue: movimientoData.record.idMovimiento
                                            },
                                            idPago: {
                                                key: true,
                                                create: false,
                                                edit: false,
                                                list: false
                                            },
                                            codigoParticipante: {
                                                title: 'Participante',
                                                width: '5%',
                                                input: function (data) {
                                                    if (data.record) {
                                                        return '<input type="text" name="codigoParticipante" class="validate[required,maxSize[20]] pago-participante" value="' + data.record.codigoParticipante + '" />' +
                                                               '<img src="' + GetAppURL() + '/Content/images/ID.png" title="Buscar Participante" onclick="BuscarParticipante(\'#ui-dialog-participante\');" />';
                                                    } else {
                                                        return '<input type="text" name="codigoParticipante" class="validate[required,maxSize[20]] pago-participante" />' +
                                                               '<img src="' + GetAppURL() + '/Content/images/ID.png" title="Buscar Participante" onclick="BuscarParticipante(\'#ui-dialog-participante\');" />';
                                                    }
                                                }
                                            },
                                            fechaPago: {
                                                title: 'Fecha',
                                                type: 'date',
                                                displayFormat: 'dd-mm-yy',
                                                width: '10%',
                                                inputClass: 'validate[required,custom[date]]'
                                            },
                                            montoLOC: {
                                                title: 'Monto LOC',
                                                width: '10%',
                                                inputClass: 'validate[custom[number]]',
                                                listClass: 'right',
                                                display: function (pagoData) {
                                                    return FormatNumber(pagoData.record.montoLOC);
                                                }
                                            },
                                            montoUSD: {
                                                title: 'Monto USD',
                                                width: '10%',
                                                inputClass: 'validate[custom[number]]',
                                                listClass: 'right',
                                                display: function (pagoData) {
                                                    return FormatNumber(pagoData.record.montoUSD);
                                                }
                                            },
                                            idTipoPago: {
                                                title: 'Tipo',
                                                width: '10%',
                                                options: '@Url.Action("GetTipoPagoOptions", "Pago")?idTipoMovimiento=' + movimientoData.record.idTipoPago,
                                                inputClass: 'validate[required]'
                                            },
                                            noDocumento: {
                                                title: 'No. Documento',
                                                width: '15%',
                                                inputClass: 'validate[required,maxSize[45]]'
                                            },
                                            observaciones: {
                                                title: 'Observaciones',
                                                type: 'textarea',
                                                list: false,
                                                inputClass: 'validate[maxSize[100]]'
                                            }
                                        },
                                        formSubmitting: function (event, data) {
                                            return data.form.validationEngine('validate');
                                        },
                                        formClosed: function (event, data) {
                                            data.form.validationEngine('hide');
                                            data.form.validationEngine('detach');
                                        }
                                    }, function (data) { //opened handler
                                        data.childTable.jtable('load');
                                    }
                                 );
                            });
                            return $img;
                        }
                    },
                    fecha: {
                        title: 'Fecha',
                        type: 'date',
                        displayFormat: 'dd-mm-yy',
                        width: '10%',
                        inputClass: 'validate[required,custom[date]]'
                    },
                    noDocumento: {
                        title: 'No. Documento',
                        width: '15%',
                        inputClass: 'validate[required,maxSize[45]]'
                    },
                    estado: {
                        title: 'Estado',
                        edit: false,
                        create: false,
                        width: '10%',
                        listClass: 'bold',
                        options: '@Url.Action("GetEstadoMovimientoOptions", "Pago")'
                    },
                    idTipoPago: {
                        title: 'Tipo',
                        width: '15%',
                        options: function () {
                            var sUrl = '@Html.Raw(Url.Action("GetTipoMovimientoOptions", "Pago", new { idMotivo = "rep__motivo" }))';

                            sUrl = sUrl.replace("rep__motivo", idMotivo);
                            return sUrl;
                        },
                        inputClass: 'validate[required]'
                    },
                    montoLOC: {
                        title: 'Monto LOC',
                        width: '10%',
                        inputClass: 'validate[custom[number]]',
                        listClass: 'right',
                        display: function (pagoData) {
                            return FormatNumber(pagoData.record.montoLOC);
                        }
                    },
                    montoUSD: {
                        title: 'Monto USD',
                        width: '10%',
                        inputClass: 'validate[custom[number]]',
                        listClass: 'right',
                        display: function (pagoData) {
                            return FormatNumber(pagoData.record.montoUSD);
                        }
                    },
                    encargado: {
                        title: 'Encargado',
                        width: '10%',
                        inputClass: 'validate[required,maxSize[45]]'
                    },
                    observaciones: {
                        title: 'Observaciones',
                        type: 'textarea',
                        list: false,
                        inputClass: 'validate[maxSize[100]]'
                    }
                },
                formCreated: function (event, data) {
                    data.form.validationEngine();
                },
                formSubmitting: function (event, data) {
                    return data.form.validationEngine('validate');
                },
                formClosed: function (event, data) {
                    data.form.validationEngine('hide');
                    data.form.validationEngine('detach');
                }
            });

            $("#f-motivo").val(idMotivo);
            $("#f-fecha").datepicker("option", "dateFormat", "dd-mm-yy");
            $('#ConsultarButton').click(function (e) {
                e.preventDefault();
                $('#MovimientoTable').jtable('load', $('.filtering form[name=pagos]').serializeArray());
            });
            //acciones on load
            $('#ConsultarButton').click();
            $('#ui-dialog-confirmacion').dialog({
                title: "Confirmación", autoOpen: false, modal: true, draggable: true,
                height: "auto", resizable: true, width: 300,
                buttons: {
                    "Cancelar": function () {
                        $(this).dialog("close");
                    },
                    "Aceptar": function () {
                        AutorizarRechazar($('#hdMovimientoConf').val(), $('#spTipoConf').text());
                        $(this).dialog("close");
                    }
                }
            });
            LoadParticipante(false, '#ui-dialog-participante', 'pago-participante', false);
        });
    </script>
}
